#!/usr/bin/env python
# -*- coding: utf-8 -*-
# @Time    : 2017/5/8 21:47
# @Author  : Beam
# @File    : Manager_ex.py

from multiprocessing import Process, Manager
import os
'''可以传递字典、列表'''
def f(d, l):
    d['key'] = l
    l.append(os.getpid())
    print(l)
if __name__ == '__main__':
    manager = Manager()   ##实例化，另一种写法with Manager() as manager:
    d = manager.dict()    ##生成一个字典，可以在多进程和之间共享和传递
    l = manager.list()    #生成一个列表，可以在多进程和之间共享和传递
    p_list = []
    for i in range(10):
        p = Process(target=f, args=(d, l))
        p.start()
        p_list.append(p)
    for res in p_list:##等待所有进程结束
        res.join()

    print(d)
    print(l)